package main

import(
	"fmt"
	"unsafe"
)

func main() {

	var i1 int16 = 9999 // 0010 0111 0000 1111
	var i2 int8 = int8(i1) // 0000 1111
	fmt.Printf("i1 = %v , i1 type is : %T \n", i1, unsafe.Sizeof(i1))
	// i1 = 9999 , i1 type is : uintptr
	fmt.Println(i2)//15
	// 我们看到将int16强转为int8的时候会损失精度，9999 -> 15
	// 原因就是将8位之后的直接去掉只剩下 0000 1111 刚好就是整数的15

}
